﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using FrameworkManapro.BusinessModel;
using FrameworkManapro.Utilities;

namespace GMAC.ReportingSystem.Business.Entities
{
    public class GeneralEnumTypes
    {
        public enum TypeFieldRep : int
        {
            Abogado = 0,
            Agencias_Extrajudiciales = 1,
            Agencias_Judiciales = 2,
            Representantes_De_Campo = 3
        }
        public enum TypeAgent : int
        {
            Inbound = 0,
            OutBound = 1
        }
        public enum Status : int
        {
            Active = 1,
            Inactive = 0
        }
        public enum Turn : int
        {
            Morning = 1, //Matutino
            Evening = 2 //Vespertino
        }
        public enum TypeDealer : int
        {
            Passengers = 0, //Pasajeros
            Truck = 1 //Camión
        }

        //-----------------------------------------

        [System.ComponentModel.TypeConverter(typeof(EnumToStringConverter))]
        public enum TypeAccountsWithDebitBalances : int
        {
            [EnumDescription(Description = "Total Loss")]
            Total_loss = 0, //Pérdida Total
            
            [EnumDescription(Description = "Thef")]
            Theft      = 1  //Robo
        }

        //-----------------------------------------

        public enum SalvageTransferReasonId : int
        {
            Cuentas_en_Reclamo_de_Seguro = 8,
            //OJO Agregar posibles valores
        }
        public enum InternalStatus : int
        {
            Paid = 0,    //Pagado
            Pending = 1, //Pending
        }

        public enum PaymentType : int
        {
            Subscriber = 0, //Por suscriptor
            Insurance  = 1, //Por Seguro
        }
        public enum YearOfSettlement : int
        {
            _007 = 2007,
            _008 = 2008,
            _009 = 2009
        }
        public enum StatusLAOSalvagePayments : int
        {
            Payment=0,//Pago
            Rejection =1, //Reject
        }
        public enum StatusAccount : int
        {
            Active = 1,//Activa
            Insurance_Claim = 17, //Reclamo de seguro
            Transferred_to_possible_loss =4 //Transferida a pérdida posible

        }
        public enum TypeQuery : int
        {
            Single = 0,
            Consolidate = 1
        }
        public enum TypeDelinquency : int
        {
            Delinquency_Account = 0,//No. de cuentas:
            Delinquency_BsF= 1//Monto en delinquency y No. de cuentas//Delinquency_Amount_And_number of accounts
        }

        public enum TypeReport : int
        {
            Current = 0,//No. de cuentas:
            Historical = 1//Monto en delinquency y No. de cuentas//Delinquency_Amount_And_number of accounts
        }

        //-----------------------------------------

        [System.ComponentModel.TypeConverter(typeof(EnumToStringConverter))]
        public enum StatusLAORetail : int
        {
            [EnumDescription(Description = "Insurance Refund Accounds")]
            InsuranceRefundAccounts = 0, //Cuentas en Reclamo de Seguro

            [EnumDescription(Description = "Possibly Lost Transfer Accounts" )]
            TransferAccountsWithLostPosibility = 1, //Cuentas en Transferencia Pérdida Posible con SalvageTransferReasonId 
            
            [EnumDescription(Description = "LAO Salvage Lost Accounts")]
            LaoSalvageLostAccounts = 2 //Cuentas en Pérdida en LAO SALVAGE
        }

        //-----------------------------------------

        [System.ComponentModel.TypeConverter(typeof(EnumToStringConverter))]
        public enum EmissionTime : int
        { 
            [EnumDescription(Description = "0-30")]
            from0to30    = 0,
            
            [EnumDescription(Description = "31-60")]
            from31to60   = 1,
            
            [EnumDescription(Description = "61-90")]
            from61to90   = 2,
            
            [EnumDescription(Description = "Over 90")]
            Over90       = 3
        }

        //-----------------------------------------

        public enum Type_SpecialPayment : int
        {
            Amortization  = 0, //amortizaciones=0
            Total_Payment = 1, //cancelación_total=1,
            Installment   = 2, //cuotas =2
            Late_Charge   = 3, //Mora
            Flat_Amount   = 4

            //Other_Charges =5 .. EStos solo se toma en cuenta en la base de datos. 
            //en los conceptos de Flat Amount
        }
        
         //ManagementGroup
         //parametro_general_etiqueta_mora_temprana,"2"
         //parametro_general_etiqueta_over, "1"

    }
}
